package factory;

/**
 * 综述: 提到工厂模式, 就不得不提到更简单更容易理解的简单工厂模式;
 *      简单工厂模式: 一个工厂类, 根据传入参数不同, 可以生成多个不同类, 这些类继承与同一父类;
 *      工厂模式: 一个工厂类, 只生成一个类;
 *
 * 1. 工厂模式与简单工厂模式有什么区别 ? 各自优劣是什么 ?
 *      区别:
 *          - 首先都是由工厂生成同一父类的不同子类;
 *          - 简单工厂: 一个工厂生成多个类; 工厂: 一个工厂只生成一个类;
 *          - 当需要新增或删除一个新的产品类时, 需要修改简单工厂类, 这违背 '开放-封闭'原则; 而对于工厂模式则不需要修改, 只需要新增一个工厂;
 *          - 工厂模式对比简单工厂模式, 每次新增产品时, 需要新增工厂, 这更复杂;
 *
 * 2. 有什么常见的使用例子吗 ?
 *      Collection --> ArrayList, LinkedList --> 均生成继承于 Iterator 的类;
 */

public class Factory {

}